<?php
/**
 * Game_Building_Military
 *
 * Класс Game_Building_Military отвечает за военные здания
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Game_Building_Military extends Game_Building_Item {
	

	/**
	 * Конструктор объекта (создание, инициализация, загрузка данных)
	 *
	 * @param Game_Building $objBuilding - объект здание (информация из БД)
	 */
	public function __construct(Game_Building $objBuilding) {
		parent::__construct($objBuilding);
	}
	
	
	/**
	 * (non-PHPdoc)
	 * @see Game_Building_Item::getLevelPropertyInfo()
	 */
	public function getLevelPropertyInfo ($level, $isCurrentLevel = false) {
		$levelevelInfo = array();
		$levelevelInfo['header'] = $isCurrentLevel ? Service_Translate::getText('Текущее время обучения') : Service_Translate::getText('Время обучения на уровне ') . $level;
		$levelevelInfo['info'] = '' . round(100 / $this->getBuildingSpeed($level)) . ' %';
		return $levelevelInfo;
	}
	
	/**
	 * Получает скорость обучения
	 * 
	 * @param int $buildingLevel
	 */
	public static function getBuildingSpeed($buildingLevel) {
		if (!$buildingLevel) return 1;
		return round(
			pow(0.9, 1 - $buildingLevel),
			1
		);
	}
	
	/**
	 * Получает скорость строительства военного здания по типу военного здания
	 * 
	 * @param int $militaryType
	 */
	public static function getMilitarySpeedByType($militaryType) {
		$buildingId = 0;
		switch ($militaryType) {
			case 1: $buildingId = 11; break;
			case 2: $buildingId = 12; break;
			case 3: $buildingId = 13; break;
		}
		$objGeneral = Game_General::instance();
		$arrBuildingInfo = $objGeneral->objPlace->getBuildingInfo($buildingId);
		$buildingLevel = empty($arrBuildingInfo['level']) ? 0 : $arrBuildingInfo['level'];
		return self::getBuildingSpeed($buildingLevel);;
	}
	
}
?>